package io;

import com.sun.org.apache.xerces.internal.impl.xs.SchemaNamespaceSupport;

import java.io.*;
import java.util.Scanner;

/**
 * @User: vitobo
 * @Date: 2024-08-13
 * @Description: 案例2: 文件复制
 *  把一个文件拷贝成另一个文件
 *      把第一个文件, 按照字节依次读取,一边读,一边写到另外一个文件中
 *
 */
public class IODemo12 {
    public static void main(String[] args) {
        // 输入两个路径
        // 源路径, 目标路径
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要拷贝的文件: ");
        String srcPath = scanner.next();

        System.out.println("请输入要拷贝到哪个地方: ");
        String destPath = scanner.next();

        File srcFile = new File(srcPath);
        if(!srcFile.isFile()){
            // 如果源文件 不是一个文件(是个目录或者不存在)
            System.out.println("输入的 源文件路径有误");
        }

        File destFile = new File(destPath);
        if(destFile.isFile()){
            // 如果已经存在, 认为不能拷贝
            System.out.println("输入的 目标路径有误! ");
            return;
        }

        // 进行拷贝操作
        try(InputStream inputStream = new FileInputStream(srcFile);
        OutputStream outputStream = new FileOutputStream(destFile)){
            // 进行读文件操作
            while(true){
                int b = inputStream.read();
                if(b==-1){
                    break;
                }
                outputStream.write(b);
            }
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}
